#ifndef KITCHEN_HPP_
# define KITCHEN_HPP_

# include	<string>

# include	"CookingPool.hpp"

enum	e_Ingredient
  {
    PATE	= 1,
    TOMATE,
    GRUYERE,
    JAMBON,
    CHAMPIGNONS,
    STEAK,
    AUBERGINES,
    FROMAGE_CHEVRE,
    AMOUR_DU_CHEF
  };

// This class get all command
class	Command : public Thread
{
public:
  Command() : Thread() {}
  virtual ~Command() {}

  virtual  void	*run() {
    // get command

    return (0);
  }
};

class	Kitchen
{
public:
  Kitchen(int id, int nbCook, int ingreTime);
  ~Kitchen();

  void			run();
  int			getId() const;
  std::string const&	getFilename() const;
  std::string const	receiveOrder();

private:
  const int		_id;
  std::string		_filename;
  const int		_nbCook;
  const int		_ingreTime;
  const int		_nbMaxOrder;

private:
  CookingPool		_pool;
  Command		_cmd;

private:
  Kitchen(Kitchen const&);
  Kitchen	&operator=(Kitchen const&);
};

#endif /* !KITCHEN_HPP_ */
